不同物种的同一个基因的对应关系
我们都知道不同的物种在进化过程中其实共享很多基因的,尤其是哺乳动物,同一个基因虽然在不同的物种序列不完全一样,位于的染色体也不一样,发挥的功能可能也稍微有点区别,但是他们的相似性非常高!根据相似性就可以在不同的物种里面找到同一个基因。
比如在人类疾病研究领域非常出名的TP53基因,在人类参考基因组的17号染色体上面,但是在mouse里面不仅仅是改名了,叫做Trp53,而且位于11号染色体,在其它物种就更加多元化了。
所以通过研究生的辛辛苦苦查询文献,数据库,终于得到了下面这张表格:
mouse, | Trp53 | Chr11 | cM | Chr11:-(+) |
---|---|---|---|---|
human | TP53 | Chr17 | p13.1 | Chr17:-(-) |
chimpanzee | TP53 | Chr17 | ||
macaque,rhesus | TP53 | Chr16 | ||
dog,domestic | TP53 | Chr5 | ||
cattle | TP53 | Chr19 | q15 | |
rat | Tp53 | Chr10 | q24 | |
frog, | tp53 | ChrUN | ||
zebrafish | tp53 | Chr5 |
我们不可能每做一次研究就搜索一下,其实是有专门的数据库,在 http://www.informatics.jax.org/homology.shtml 里面专门收集了这些信息,我们要做的就是写脚本解析它!
wget http://www.informatics.jax.org/downloads/reports/HOM_AllOrganism.rpt
## 17M Nov 20 21:00 HOM_AllOrganism.rpt
脚本趣事
如果这个文件大家有打开看的话,很容易理解为,每9行是一个同源基因的ID在不同的9个物种的基因信息,列也是很整齐的,虽然很多基因的在某些物种里面的好多信息都是缺失的,但是不影响我们很容易写出代码来把这个长型数据转换为宽型数据!对的,你想到了什么呢?是R,就是R,我们的小英雄。
a=read.table('~/HOM_AllOrganism.rpt',header = T,fill = T,sep = '\t',quote = "")
## 这个 read.table 的参数我用的有点多,希望你喜欢
head(a)
dim(a)
library(tidyr)
?spread()
所以我写出了上面的代码,结果很显然,报错了,因为同源基因的ID并不是只出现9次,不是我想当然的那种数据库格式,很多基因在单独物种里面都没有搞明白,多个家族基因混在一起,在跨物种间,怎么可能那么容易就牵一根线对应起来呢?
同源关系不明确的
简单写了个脚本,发现有 4061
个基因,都在很清楚在9个物种里面对应好了,但是该数据库总共记录了 25998
,意味着几乎大部分的基因特别含糊,看样子人类的认知边界还是很狭窄呀!详细的统计指标如下图:
那,接下来让我们仔细瞧瞧看,这些不明确的基因都是咋回事吧。
当然,基因实在是有点多,就随便挑选几个看看。
发现有锌指蛋白,vomeronasal type-2 receptor(extracellular calcium-sensing receptor-like),bloodthirsty-related gene family , 果然不出所料,都是哪些本身就在一个物种就有一堆亲戚的基因家族系列。
另外值得注意的是,那些小于9个的基因,是不是所谓的物种特异性基因呢?
布置作业:
题目一:那 4061
个在9个物种里面对应好的基因,在人类的背景里面做一下富集分析,看看都是集中在哪些通路。
题目二:把那些出现少于9个物种的基因探究一下,比如只出现在一个物种的那些是不是物种特异性基因呢?出现在2~5个的,是不是跟这9个物种的进化关系有联系呢?